package com.manli.timing.dto;

import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;

import java.io.Serializable;
import java.util.Date;

/**
 * 
 * 
 * @author manli
 * @email 
 * @date 2020-08-26 11:11:06
 */
@ApiModel(value = "")
@Data
public class OrderInfo implements Serializable {

	/**
	 * 
	 */

    @ApiModelProperty(value = "",dataType = "Integer")
	    private Integer orderInfoId;
	/**
	 * 总店id
	 */

    @ApiModelProperty(value = "总店id",dataType = "Integer")
	    private Integer branchId;
	/**
	 * 分店id
	 */

    @ApiModelProperty(value = "分店id",dataType = "Integer")
	    private Integer partnerId;
	/**
	 * 
	 */

    @ApiModelProperty(value = "",dataType = "String")
	    private String buyerOpenid;
	/**
	 * 
	 */

    @ApiModelProperty(value = "",dataType = "String")
	    private String buyerUnionid;
	/**
	 * 
	 */

    @ApiModelProperty(value = "",dataType = "String")
	    private String shareOpenid;

	/**
	 *
	 */

	@ApiModelProperty(value = "",dataType = "String")
	private String shareUnionid;
	/**
	 * 购物者的地址
	 */

    @ApiModelProperty(value = "购物者的地址",dataType = "String")
	    private String buyerAddress;
	/**
	 * 购物者的联系方式
	 */

    @ApiModelProperty(value = "购物者的联系方式",dataType = "String")
	    private String buyerPhone;

	/**
	 *  购物者名字
	 */
	@ApiModelProperty(value = "购物者的名称",dataType = "String")
	private String buyerName;

	/**
	 *  配送方式
	 */
	@ApiModelProperty(value = "1：到店自取 2：配送到家",dataType = "String")
	private String buyMethod;
	/**
	 * 购物者经度
	 */

    @ApiModelProperty(value = "购物者经度",dataType = "String")
	    private String buyerLongitude;
	/**
	 * 购物者纬度
	 */

    @ApiModelProperty(value = "购物者纬度",dataType = "String")
	    private String buyerLatitude;
	/**
	 * 购物者经度
	 */

    @ApiModelProperty(value = "购物者经度",dataType = "String")
	    private String buyerLongitudeWgs;
	/**
	 * 购物者纬度
	 */

    @ApiModelProperty(value = "购物者纬度",dataType = "String")
	    private String buyerLatitudeWgs;

	/**
	 * 购买数量
	 */
	@ApiModelProperty(value = "购买数量",dataType = "Integer")
	private Integer buyCount;
	/**
	 * JSAPI , NATIVE
	 */

    @ApiModelProperty(value = "JSAPI , NATIVE",dataType = "String")
	    private String tradeType;
	/**
	 * 来源 pc_wxpay , pc_alipay , web_wxpay,web_alipay
	 */

    @ApiModelProperty(value = "来源 pc_wxpay , pc_alipay , web_wxpay , web_alipay",dataType = "String")
	    private String source;
	/**
	 * 详细来源 DPXQ 店铺详情 , GWC 购物车 , YYPM 一元拍卖 , PT 拼团 , KJ 砍价 ,  SPXQ 商品详情 , NOGOODS 门店支付 , YDDD 预定订单
	 */
	@ApiModelProperty(value = "详细来源 DPXQ 店铺详情 , GWC 购物车 , YYPM 一元拍卖 , PT 拼团 , KJ 砍价 , SPXQ 商品详情 , NOGOODS 门店支付 ,YDDD 预定订单 ",dataType = "String")
	private String sourceSub;
	/**
	 * 总订单号
	 */

    @ApiModelProperty(value = "总订单号",dataType = "String")
	    private String orderNoMain;
	/**
	 * 子订单号
	 */

    @ApiModelProperty(value = "子订单号",dataType = "String")
	    private String orderNoSub;
	/**
	 * 商品id
	 */

    @ApiModelProperty(value = "商品id",dataType = "Integer")
	    private Integer goodsDefId;
	/**
	 * 规格id
	 */

    @ApiModelProperty(value = "规格id",dataType = "Integer")
	    private Integer goodsModelId;
	/**
	 * 佣金 元
	 */

    @ApiModelProperty(value = "佣金 元",dataType = "Double")
	    private Double commissionPrice;
	/**
	 * 成本价 元
	 */

    @ApiModelProperty(value = "成本价 元",dataType = "Double")
	    private Double goodsModelCost;
	/**
	 * 销售价 元
	 */

    @ApiModelProperty(value = "销售价 元",dataType = "Double")
	    private Double goodsModelSalePrice;
	/**
	 * 渠道价 元
	 */

    @ApiModelProperty(value = "渠道价 元",dataType = "Double")
	    private Double goodsModelChannelPrice;
	/**
	 * 活动类型id
	 */

    @ApiModelProperty(value = "活动类型id",dataType = "Integer")
	    private Integer activityTypeId;
	/**
	 * 订单创建时间
	 */

    @ApiModelProperty(value = "订单创建时间",dataType = "Date")
	    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
        private Date createTime;
	/**
	 * 订单支付时间
	 */

    @ApiModelProperty(value = "订单支付时间",dataType = "Date")
	    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
        private Date payTime;
	/**
	 * 实际支付金额 元
	 */

    @ApiModelProperty(value = "实际支付金额 元",dataType = "Double")
	    private Double payPrice;
	/**
	 * 退款时间
	 */

    @ApiModelProperty(value = "退款时间",dataType = "Date")
	    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
        private Date refuseTime;
	/**
	 * 退款金额 元
	 */

    @ApiModelProperty(value = "退款金额 元",dataType = "Double")
	    private Double refusePrice;
	/**
	 * 退款时间
	 */

    @ApiModelProperty(value = "退款时间",dataType = "Date")
	    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
        private Date cancelTime;
	/**
	 * 支付时候传给第三方
	 */

    @ApiModelProperty(value = "支付时候传给第三方",dataType = "String")
	    private String attach;
	/**
	 * 优惠类型
	 */

    @ApiModelProperty(value = "优惠类型",dataType = "String")
	    private String preferentialType;
	/**
	 * 优惠id
	 */

    @ApiModelProperty(value = "优惠id",dataType = "String")
	    private String preferentialId;
	/**
	 * 优惠总金额 元
	 */

    @ApiModelProperty(value = "优惠总金额 元",dataType = "Double")
	    private Double preferentialPrice;
	/**
	 * 第三方支付编号 例如微信
	 */

    @ApiModelProperty(value = "第三方支付编号 例如微信",dataType = "String")
	    private String transactionId;
	/**
	 *  -1取消订单 0 待支付 1支付成功  2 退款中  3已退款  4 已使用（已核销）
	 */

    @ApiModelProperty(value = " -1取消订单 0 待支付 1支付成功  2 退款中  3已退款  4 已使用（已核销）",dataType = "Integer")
	    private Integer status;

	@ApiModelProperty(value = "支付到的商户id",dataType = "String")
    private String payMchId;

	@ApiModelProperty(value = "计算订单金额,应该支付",dataType = "String")
	private Double shouldPayPrice;


}
